<!DOCTYPE html>
<html xml:lang="zh-CN" style="height: 100%;">

<head lang="en">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" type="text/css" href="css/style.css" charset="UTF-8" />
    <link rel="stylesheet" href="css/mBoxNotice.css" charset="UTF-8" />
    <link rel="stylesheet" href="css/mBoxTooltip.css" charset="UTF-8" />
    <!--    <script src="res/framework/mootools/mootools-core-1.4.5-full-nocompat.js"></script>-->
    <!--    <script src="res/framework/mootools/mootools-more-1.4.0.1-all_2.js"></script>-->

    <script src="../o2_core/o2.min.js"></script>
    <script src="../o2_lib/Decimal.js"></script>
    <script src="js/base_simple_anonymous.js"></script>
    <script>

        layout.addReady(function(){
            (function(layout){
                var uri = new URI(window.location.href);
                var locate = window.location;
                var protocol = locate.protocol;
                var href = locate.href;

                //var uri = new URI(href);
                var oauth = uri.getData("oauth");
                var redirect = uri.getData("redirect");
                var code = uri.getData("code");
                var method = uri.getData("method");

                var _load = function(){
                    if (code) {
                        layout.loginOauth();
                    } else if (oauth) {
                        layout.loadOauth();
                    }
                };

                layout.loginOauth = function () {
                    var r = protocol + "//" + location.host + location.pathname;
                    r = r + "?oauth=" + oauth;
                    if (redirect) r = r + "&redirect=" + redirect;

                    var action = MWF.Actions.get("x_organization_assemble_authentication");
                    //企业微信单点登录
                    if (layout.isQywx()) {
                        action["loginOauthQywxServer"](code, function () {
                            if (redirect) {
                                window.location = redirect;
                            } else {
                                window.location = "/";
                            }
                        }.bind(this));
                    } else if (layout.isDingding()) {
                        action["loginOauthDingdingServer"](code, function () {
                            if (redirect) {
                                window.location = redirect;
                            } else {
                                window.location = "/";
                            }
                        }.bind(this));
                    } else {

                        var logMethod = method || "loginOauthServer";
                        action[logMethod](oauth, code, encodeURIComponent(r), function () {
                            if (method === "oauthBind") {
                                alert("用户绑定已成功！");
                                window.close();
                            } else {
                                if (redirect) {
                                    window.location = redirect;
                                } else {
                                    window.location = "/";
                                }
                            }

                        }.bind(this), function(){
                            document.write("<div style='text-align: center; font-size: 24px; margin: 40px auto;'>无法获取用户凭证, 您可能未绑定“"+oauth+"”账号。</div>");
                            document.write("<div style='text-align: center; font-size: 18px; margin: 40px auto;'>请<a href='/x_desktop/redirect.html?url="+encodeURIComponent("../x_desktop/oauth.html?oauth="+oauth+"&redirect=/&method=oauthBind")+"'>点击此处登陆</a>后，重新扫码绑定账号。</div>")
                        });
                    }

                };
                layout.loadOauth = function () {
                    var action = MWF.Actions.get("x_organization_assemble_authentication");
                    //企业微信单点登录
                    if (layout.isQywx()) {
                        action.qywxOauthServer(function (json) {
                            var qywxConfig = json.data || {};
                            var url = "https://open.work.weixin.qq.com/wwopen/sso/qrConnect?state=STATE";
                            var corpId = qywxConfig.corpId;
                            if (corpId) {
                                url += "&appid=" + corpId;
                            }
                            var agentId = qywxConfig.agentId;
                            if (agentId) {
                                url += "&agentid=" + agentId;
                            }
                            var r = protocol + "//" + location.host + location.pathname;
                            r = r + "?oauth=" + oauth + "&qywx=true";
                            url += "&redirect_uri=" + encodeURIComponent(r);

                            window.location = url;
                        }.bind(this));
                    } else if (layout.isDingding()) { //钉钉单点登录
                        action.dingdingOauthServer(function (json) {
                            var dingdingConfig = json.data || {};
                            var url = "https://oapi.dingtalk.com/connect/qrconnect?response_type=code&scope=snsapi_login&state=STATE";
                            var appId = dingdingConfig.scanLoginAppId;
                            if (appId) {
                                url += "&appid=" + appId;
                            }
                            var r = protocol + "//" + location.host + location.pathname;
                            r = r + "?oauth=" + oauth + "&dingding=true";
                            url += "&redirect_uri=" + encodeURIComponent(r);
                            window.location = url;
                        }.bind(this));
                    } else {
                        action.getOauthServer(oauth, function (json) {
                            var url = json.data.authAddress;
                            var p = json.data.authParameter;
                            var r = protocol + "//" + location.host + location.pathname;
                            r = r + "?oauth=" + oauth;
                            if (method) r = r + "&method=" + method;
                            if (redirect) r = r + "&redirect=" + redirect;
                            if (p.indexOf("{$redirect_uri}")!==-1){
                                p = p.replace("{$redirect_uri}", encodeURIComponent(r));
                            }else{
                                p = (p) ? p + "&redirect_uri=" + encodeURIComponent(r) : "&redirect_uri=" + encodeURIComponent(r);
                            }
                            url = (url.indexOf("?" === -1)) ? url + "?" + p : url + "&" + p;
                            window.location = url;
                        }.bind(this));
                    }
                };
                layout.isQywx = function () {
                    var qywx = uri.getData("qywx");
                    if (qywx) {
                        return true;
                    } else {
                        return false;
                    }
                };
                layout.isDingding = function () {
                    var dingding = uri.getData("dingding");
                    if (dingding) {
                        return true;
                    } else {
                        return false;
                    }
                };

                _load();
            })(layout);
        });

    </script>
    <script src="../o2_lib/mootools/mootools-1.6.0.min.js"></script>
</head>

<body>
<!--<body bgcolor="#faebd7" bgcolor="#ffc0cb" style="height: 100%; overflow: auto; margin:0px; background-size: cover; background-image: url(res/mwf4/package/xDesktop/$Layout/default/desktop.jpg);">-->
<!--<div id="layout" style="overflow: auto; height:100%"></div>-->
</body>

</html>
